priv->scale,
gtk_style_context_should_create_transitions (context) ? current : NULL);
- if (!GTK_IS_CSS_ANIMATED_STYLE (values) ||
- gtk_css_animated_style_is_static (GTK_CSS_ANIMATED_STYLE (values)))
- {
- change &= ~GTK_CSS_CHANGE_ANIMATE;
- }
- else
- {
- change |= GTK_CSS_CHANGE_ANIMATE;
- style_info_set_values (info, values);
- }
+ style_info_set_values (info, values);
_gtk_style_context_update_animating (context);
if (current)
}
else
{
+ gtk_style_context_update_cache (context, parent_changes);
+
changes = gtk_css_style_compute_dependencies (current, parent_changes);
if (!_gtk_bitmask_is_empty (changes))
{
update_properties (context, current, info->decl, changes);
}
- gtk_style_context_update_cache (context, parent_changes);
- }
-
- if (current)
- g_object_unref (current);
-
- if (change & GTK_CSS_CHANGE_ANIMATE &&
- gtk_style_context_is_animating (context))
- {
- GtkCssStyle *new_values;
- GtkBitmask *animation_changes;
+ if (change & GTK_CSS_CHANGE_ANIMATE &&
+ gtk_style_context_is_animating (context))
+ {
+ GtkCssStyle *new_values;
+ GtkBitmask *animation_changes;
- new_values = gtk_css_animated_style_new_advance (GTK_CSS_ANIMATED_STYLE (info->values), timestamp);
- animation_changes = gtk_css_style_get_difference (new_values, info->values);
- style_info_set_values (info, new_values);
- g_object_unref (new_values);
+ new_values = gtk_css_animated_style_new_advance (GTK_CSS_ANIMATED_STYLE (info->values), timestamp);
+ animation_changes = gtk_css_style_get_difference (new_values, info->values);
+ style_info_set_values (info, new_values);
+ g_object_unref (new_values);
- changes = _gtk_bitmask_union (changes, animation_changes);
- _gtk_bitmask_free (animation_changes);
+ changes = _gtk_bitmask_union (changes, animation_changes);
+ _gtk_bitmask_free (animation_changes);
- if (!GTK_IS_CSS_ANIMATED_STYLE (info->values) ||
- gtk_css_animated_style_is_static (GTK_CSS_ANIMATED_STYLE (info->values)))
- _gtk_style_context_update_animating (context);
+ if (!GTK_IS_CSS_ANIMATED_STYLE (info->values) ||
+ gtk_css_animated_style_is_static (GTK_CSS_ANIMATED_STYLE (info->values)))
+ _gtk_style_context_update_animating (context);
+ }
}
+ if (current)
+ g_object_unref (current);
+
if (!_gtk_bitmask_is_empty (changes))
gtk_style_context_do_invalidate (context, changes);